Localization and Register Sharing for Predicate Abstraction
نویسندگان
چکیده
In the domain of software verification, predicate abstraction has emerged to be a powerful and popular technique for extracting finite-state models from often complex source code. In this paper, we report on the application of three techniques for improving the performance of the predicate abstraction refinement loop. The first technique allows faster computation of the abstraction. Instead of maintaining a global set of predicates, we find predicates relevant to various basic blocks of the program by weakest pre-condition propagation along spurious program traces. The second technique enables faster model checking of the abstraction by reducing the number of state variables in the abstraction. This is done by re-using Boolean variables to represent different predicates in the abstraction in a safe way. However, some predicates are useful at many program locations and discovering them lazily in various parts of the program leads to a large number of abstraction refinement iterations. The third technique attempts to identify such predicates early in the abstraction refinement loop and handles them separately by introducing dedicated state variables for such predicates. We have incorporated these techniques into NEC’s software verification tool F-Soft, and present promising experimental results for various case studies using these techniques.
منابع مشابه
System- versus RT-Level Verification of Systems-on-Chip by Compositional Path Predicate Abstraction
A formal methodology for system verification of System-on-Chip (SoC) designs is proposed. It ensures that systemlevel models are created which are sound abstractions of the concrete implementations at the Register Transfer Level (RTL). For each SoC module at the RTL an abstract description is obtained by path predicate abstraction. Path predicate abstraction is introduced based on the notion of...
متن کاملSAT based Abstraction Refinement for Hardware Verification
Model checking is a widely used automatic formal verification technique. Despite the recent advances in model checking technology, its application is still limited by the state explosion problem. For model checking large real world systems, abstraction is essential. This thesis investigates abstraction techniques for the efficient verification of hardware designs with thousands of registers. A ...
متن کاملF-Soft: Software Verification Platform
In this paper, we describe our verification tool F-Soft which is developed for the analysis of C programs. Its novelty lies in the combination of several recent advances in formal verification research including SAT-based verification, static analyses and predicate abstraction. As shown in the tool overview in Figure 1, we translate a program into a Boolean model to be analyzed by our verificat...
متن کاملVCEGAR: Verilog CounterExample Guided Abstraction Refinement
ion Refinement Himanshu Jain1, Daniel Kroening2, Natasha Sharygina1,3, and Edmund Clarke1 1 Carnegie Mellon University, School of Computer Science 2 ETH Zuerich, Switzerland 3 Informatics Department, University of Lugano Abstract. As first step, most model checkers used in the hardware industry convert a high-level register transfer language (RTL) design into As first step, most model checkers ...
متن کاملRefining Approximations in Software Predicate Abstraction
ion Thomas Ball†, Byron Cook†, Satyaki Das, and Sriram K. Rajamani† † Microsoft Corporation ? Stanford University Abstract. Predicate abstraction is an automatic technique that can be used to find abstract models of large or infinite-state systems. In tools like Slam, where predicate abstraction is applied to software model checking, a number of heuristic approximations must be used to improve ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2005